<?php
    /*
Autor: Jonathan Vindas Abarca
Fecha: 23/08/2012
Descripción: Este archivo contiene la declaración de funciones para obtener datos de la tabla de lineas
de la base de datos SQL Server.
Bitacora de modificaciones:
<
    Autor: 
    Fecha: 
    Descripción: 
>
*/

    /*Funcion para agregar Linea*/
    function agregarLinea($CodGuia,$Embalaje, $Cant, $PrecioUnit, $MontoTotal)
    {        
        require_once 'dataModelo.php';
        $conexion=conexion();
        //$insert="Insert into Lineas (CodGuia,Embalaje,Cant,PrecioUnit,MontoTotal) values('$CodGuia','$Embalaje','$Cant','$PrecioUnit','$MontoTotal')";                    
        $insert="exec SP001AgregarLinea '$CodGuia', '$Embalaje', '$Cant', '$PrecioUnit', '$MontoTotal'";
        if (!odbc_exec($conexion,$insert))
        {
            die('Error: ' . odbc_error());
        }
        odbc_close($conexion);
    }
    
    /*Funcion para modificar Embalajes*/
    function modificarLinea($CodGuia,$Embalaje, $Cant, $PrecioUnit, $MontoTotal, $numeroLinea)
    {
        require_once 'dataModelo.php';
        $conexion=conexion();           
        //$update="update Lineas set Cant='$Cant', PrecioUnit='$PrecioUnit', MontoTotal='$MontoTotal' where CodGuia='$CodGuia' and Embalaje='$Embalaje'";//Revisar que se puede actualizar de la linea      
        $update="exec SP002ModificarLinea '$CodGuia', '$Embalaje' , '$Cant', '$PrecioUnit', '$MontoTotal', '$numeroLinea'";
        if (!odbc_exec($conexion,$update))
        {
            die('Error: ' . odbc_error());
        }
        odbc_close($conexion);
    }

    /*Función para Eliminar Lineas*/
    function eliminarLineaControlador($CodGuia, $Embalaje, $numeroLinea)
    {
        require_once 'dataModelo.php';
        $conexion=conexion();
        try 
        {
            //$delete="delete from Lineas where CodGuia ='$CodGuia' and Embalaje='$Embalaje'";
            $delete="exec SP003EliminarLineaControlador '$CodGuia','$Embalaje', '$numeroLinea'";
            if (!odbc_exec($conexion,$delete))
            {
                die('Error: ' . odbc_error());
            }
            odbc_close($conexion);
        }
        catch (Exception $e)
        {
            echo 'Excepción capturada: ',  $e->getMessage(), "\n";        
        }
    }
    
    /*Función para Buscar Todas las Lineas*/
    function buscarLineasPorCodigoGuia()
    {
        require_once 'dataModelo.php';
        $conexion=conexion();
        $select="exec SP004BuscarLineasPorCodigoGuia";        
        //$rs = odbc_exec($conexion, "SELECT p.CodGuia,p.Embalaje,p.Cant,p.PrecioUnit,p.MontoTotal,em.Tipo 
        //FROM Lineas p INNER JOIN Embalajes em ON p.Embalaje = em.CodEmbalaje ");        
        $rs = odbc_exec($conexion,$select);
        $items=Array();
            while (odbc_fetch_row($rs)){
                $item['CodGuia']=odbc_result($rs,"CodGuia");
                $item['Embalaje']=odbc_result($rs,"Embalaje");
                $item['Cant']=odbc_result($rs,"Cant");
                $item['PrecioUnit']=odbc_result($rs,"PrecioUnit");
                $item['MontoTotal']=odbc_result($rs,"MontoTotal");
                $item['Tipo']=odbc_result($rs,"Tipo");
                array_push($items,$item);
            }
        odbc_close($conexion);
        return $items;
    }
    
    /*Función para Buscar Todos Codigos Embalajes*/
    function buscarTodosCodigosGuiasLineas()
    {        
        require_once 'dataModelo.php';
        $conexion=conexion();
        $select="exec SP005BuscarTodosCodigosGuiasLineas";
        //$rs = odbc_exec($conexion, "select CodGuia, Embalaje, Cant, PrecioUnit, MontoTotal from Lineas");
        $rs = odbc_exec($conexion, $select);
        $items=Array();
        while (odbc_fetch_row($rs))
        {
            $item['CodGuia']=odbc_result($rs,"CodGuia");                
            array_push($items,$item);
        }
        odbc_close($conexion);
        return $items;
    }

    /*Funcion para buscar la linea por codigo de guia y embalaje*/
    function encontrarLinea($codigo,$embalaje)
    {       
       require_once 'dataModelo.php';
       $conexion=conexion();
       $pcodig='';       
       $select="exec SP006EncontrarLinea '$codigo','$embalaje'";
       //$rs = odbc_exec($conexion,  "select CodGuia, Embalaje, Cant, PrecioUnit, MontoTotal FROM Lineas where CodGuia='".$codigo."' and Embalaje = '".$embalaje."'");       
       $rs = odbc_exec($conexion, $select);       
       $items=Array();
       if (!$conexion) {
           
           exit( "Error al conectar: " . $conexion);
       }
       while (odbc_fetch_row($rs)){
           $pcodig=odbc_result($rs,"CodGuia");
         
       }
       odbc_close($conexion);
       return $pcodig;
     } 
        
    /*Función para Buscar LineaDetalles por CodGuia y Embalaje*/
    function buscarLineaDetallesXCodGuiaEmba($codGuia,$embalaje)
    {        
        require_once 'dataModelo.php';
        $conexion=conexion();          
        $select="exec SP007BuscarLineaDetallesXCodGuiaEmba '$codGuia','$embalaje'";
        //$rs = odbc_exec($conexion, "select top 1 NumOrden,Articulo,CodGuia,Embalaje,Cant from LineaDetalles where CodGuia='" .$codGuia."' and Embalaje='".$embalaje."'");
        $rs = odbc_exec($conexion, $select);
        $existe=false;
        while (odbc_fetch_row($rs))
        {
            $item['CodGuia']=odbc_result($rs,"CodGuia");                
            $existe=true;
        }
        odbc_close($conexion);
        return $existe;
    }
    
    /*Funcion para encontrar lineas detalles dependientes*/  
	//INC0055-IncidenteOrdenReporteGuiaEnvio	
	// se agrega el parametro $$numeroLinea que faltaba
    function encontrarDependenciaLineaDetalle($codigo, $embalaje, $numeroLinea)
    {      
        require_once 'dataModelo.php';       
        $conexion=conexion();
        $existe=false;    
		//INC0055-IncidenteOrdenReporteGuiaEnvio	
        $select="exec SP008EncontrarDependenciaLineaDetalle '$codigo','$embalaje',$numeroLinea";        
        $rs = odbc_exec($conexion, $select);       
        if (!$conexion) 
        {           
            exit( "Error al conectar: " . $conexion);
        }
        else
        {            
            $existe=odbc_fetch_row($rs);      
        }           
        odbc_close($conexion);
        return $existe;
    }        
    
    /*Función para Buscar Lineas por CodGuia*/
    function buscarTodasLineasXCodGuiaEmba($codGuia)
    {   
        require_once 'dataModelo.php';
        $conexion=conexion();            
        //$select = "select l.CodGuia,l.Embalaje,e.Tipo,l.Cant,l.PrecioUnit,l.MontoTotal from Lineas l
        //inner join Embalajes e on e.CodEmbalaje=l.Embalaje 
        //where CodGuia='" .$codGuia."'";
        $select="exec SP009BuscarTodasLineasXCodGuiaEmba '$codGuia'";
        $rs = odbc_exec($conexion,$select);
        $items=Array();
            while (odbc_fetch_row($rs)){
                $item['CodGuia']=odbc_result($rs,"CodGuia");
                $item['Embalaje']=odbc_result($rs,"Embalaje");
                $item['Tipo']=odbc_result($rs,"Tipo");
                $item['Cant']=odbc_result($rs,"Cant");
                $item['PrecioUnit']=odbc_result($rs,"PrecioUnit");
                $item['MontoTotal']=odbc_result($rs,"MontoTotal");
                $item['numeroLinea']=odbc_result($rs,"numeroLinea");
                array_push($items,$item);
            }
        odbc_close($conexion);
        return $items;
    }
        
    function buscarTodasLasLineas()
    {        
        require_once 'dataModelo.php';
        $conexion=conexion();
        $select="exec SP0010BuscarTodasLasLineas";
        //$rs = odbc_exec($conexion, "select codguia, embalaje, cant, precioUnit, montoTotal from lineas");
        $rs = odbc_exec($conexion, $select);
        $existe=false;
            while (odbc_fetch_row($rs)){
                $item['CodGuia']=odbc_result($rs,"CodGuia");                
                $existe=true;
            }
        odbc_close($conexion);
        return $existe;
    }
  
    /**/
    function buscarLineasPorGuia($codigoGuia)
    {        
        require_once 'dataModelo.php';
        $conexion=conexion();
        $select="exec SP0011BuscarLineasPorGuia '$codigoGuia'";
        //$rs = odbc_exec($conexion, "select l.CodGuia,l.Embalaje,e.Tipo,l.Cant,l.PrecioUnit,l.MontoTotal from Lineas l
          //          inner join Embalajes e on e.CodEmbalaje=l.Embalaje where CodGuia='" .$codigoGuia."'");        
        $rs = odbc_exec($conexion,$select);
        $items=Array();
            while (odbc_fetch_row($rs)){
                $item['CodGuia']=odbc_result($rs,"CodGuia");
                $item['Embalaje']=odbc_result($rs,"Embalaje");
                $item['Tipo']=odbc_result($rs,"Tipo");
                $item['Cant']=odbc_result($rs,"Cant");
                $item['PrecioUnit']=odbc_result($rs,"PrecioUnit");
                $item['MontoTotal']=odbc_result($rs,"MontoTotal");
                $item['numeroLinea']=odbc_result($rs,"numeroLinea");
                array_push($items,$item);
            }
        odbc_close($conexion);
        return $items;
    }
    
    /*Funcion para encontrar repetidos, retorna true si existe una linea */    
    function encontrarLineaDuplicada($codigo, $embalaje)
    {      
       require_once 'dataModelo.php';          
       $conexion=conexion();
       $existe=false;        
       $select="exec SP0012EncontrarLineaDuplicada '$codigo', '$embalaje' ";
       //$rs = odbc_exec($conexion, "select CodGuia, Embalaje, Cant, PrecioUnit, MontoTotal FROM Lineas where CodGuia='".$codigo."' and Embalaje = '".$embalaje."'");       
       $rs = odbc_exec($conexion, $select);       
       if (!$conexion) {           
           exit( "Error al conectar: " . $conexion);
       }
       else
       {            
           $existe=odbc_fetch_row($rs);      
       }       
       odbc_close($conexion);
       return $existe;
    }    
?>
